home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / budget.arc / PERT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-06-26  |  3.0 KB  |  102 lines

  1. 10  CLS
  2. 20  KEY OFF
  3. 30  REM  PROGRAM EVALUATION AND REVIEW TECHNIQUE (PERT)
  4. 40  REM  A()=START AND END NODES FOR EACH ACTIVITY
  5. 50  REM  S()=EARLY START TIMES FOR EACH ACTIVITY
  6. 60  REM  F()=LATE FINISH TIMES FOR EACH ACTIVITY
  7. 70  REM  E()=EXPECTED DURATIONS AND VARIANCES OF ACTIVITIES
  8. 80  DIM A(99,2),S(99),F(99),E(99,2)
  9. 90  DEF FNR(Z1)=INT((Z1*1000+0.5))/1000
  10. 100  PRINT "PROGRAM EVALUATION AND REVIEW TECHNIQUE"
  11. 110  PRINT
  12. 120  PRINT "ENTER THE NUMBER OF";
  13. 130  PRINT " ACTIVITIES IN THIS NETWORK";
  14. 140  INPUT N
  15. 150  FOR I=1 TO N
  16. 160  PRINT
  17. 170  PRINT USING "------- ACTIVITY ## -------"; I
  18. 180  PRINT "ENTER START NODE, END NODE";
  19. 190  INPUT A(I,1),A(I,2)
  20. 200  IF A(I,2)<=A(I,1) THEN 220
  21. 210  IF A(I,2)<N THEN 270
  22. 220  PRINT " START NODE MUST BE NUMBERED LOWER";
  23. 230  PRINT "  THEN END NODE, AND END NODE MUST"
  24. 240  PRINT " BE LESS THAN THE NUMBER OF ACTIVITIES.";
  25. 250  PRINT "     *** TRY ENTRY AGAIN ***"
  26. 260  GOTO 160
  27. 270  PRINT "ENTER THREE TIME ESTIMATES";
  28. 280  PRINT " FOR THIS ACTIVITY (A,M,B)";
  29. 290  INPUT A1,M,B
  30. 300  REM  E(I,1) IS THE EXPECTED DURATION
  31. 310  E(I,1)=FNR((A1+M*4+B)/6)
  32. 320  REM  E(I,2) IS THE ACTIVITY VARIANCE
  33. 330  E(I,2)=FNR((B-A1)/6)^2
  34. 340  S(I)=0
  35. 350  F(I)=0
  36. 360  NEXT I
  37. 370  REM  LOOP TO FIND EARLY START TIMES FOR NETWORK
  38. 380  FOR I=1 TO N
  39. 390  IF S(A(I,2))>=S(A(I,1))+E(I,1) THEN 410
  40. 400  S(A(I,2))=S(A(I,1))+E(I,1)
  41. 410  NEXT I
  42. 420  F(A(N,2))=S(A(N,2))
  43. 430  REM  LOOP TO CALCULATE LATE FINISH TIMES FOR NETWORK
  44. 440  FOR I=N TO 1 STEP -1
  45. 450  IF F(A(I,1))=0 THEN 480
  46. 460  IF F(A(I,1))>F(A(I,2))-E(I,1) THEN 480
  47. 470  GOTO 490
  48. 480  F(A(I,1))=F(A(I,2))-E(I,1)
  49. 490  NEXT I
  50. 500  V=0
  51. 510  C=0
  52. 520  L=0
  53. 530  FOR I=1 TO N
  54. 540  REM  CALCULATE SLACK TIME IN S1
  55. 550  S1=F(A(I,2))-S(A(I,1))-E(I,1)
  56. 560  S1=INT(S1*1E+06+0.5)/1E+06
  57. 570  PRINT "--------------------------------------"
  58. 580  PRINT
  59. 590  PRINT USING "ACTIVITY ## (NODE ## TO NOD ##)"; I; A(I,1); A(I,2);
  60. 600  PRINT " IS A ";
  61. 610  IF S1<=0 THEN 630
  62. 620  PRINT "NON-";
  63. 630  PRINT "CRITICAL EVENT."
  64. 640  PRINT USING "    EXPECTED DURATION: ###.###          "; E(I,1);
  65. 650  PRINT USING "   STANDARD DEVIATION: ###.###"; SQR (E(I,2))
  66. 660  IF S1>0 THEN 740
  67. 670  PRINT USING "  START NO LATER THAN: ###.###"; S(A(I,1))
  68. 680  PRINT USING " MUST BE COMPLETED BY: ###.###"; F(A(I,2))
  69. 690  REM  ACCUMULATE PATH LENGTH IN L, VARIANCE IN V
  70. 700  IF L>=F(A(I,2)) THEN 720
  71. 710  L=F(A(I,2))
  72. 720  V=V+E(I,2)
  73. 730  GOTO 790
  74. 740  PRINT USING "          EARLY START: ###.###          "; S(A(I,1));
  75. 750  PRINT USING "           LATE START: ###.###"; F(A(I,2))-E(I,1)
  76. 760  PRINT USING "         EARLY FINISH: ###.###   "; S(A(I,1))+E(I,1);
  77. 770  PRINT USING "                 LATE FINISH: ###.###"; F(A(I,2))
  78. 780  PRINT USING "           SLACK TIME: ###.###"; S1
  79. 790  NEXT I
  80. 800  PRINT
  81. 810  PRINT "             THE CRITICAL PATH LENGTH IS  ";L;
  82. 820  P=SQR (V)
  83. 830  PRINT "PLUS OR MINUS";P
  84. 840  PRINT "ENTER DESIRED COMPLETION TIME (0 TO END) ";
  85. 850  INPUT D
  86. 860  IF D<=0 THEN 1010
  87. 870  REM  CALCULATE Z-SCORE FOR DESIRED DURATION
  88. 880  Y=(D-L)/P
  89. 890  REM  CALCULATE CUMULATIVE AREA UNDER NORMAL DISTRIBUTION
  90. 900  REM  REF: SOME COMMON BASIC PROGRAMS, 3RD ED. P.128
  91. 910  R=EXP(-(Y^2)/2)/2.50663
  92. 920  Z=Y
  93. 930  Y=1/(1+0.33267*ABS(Y))
  94. 940  T=1-R*(0.436184*Y-0.120168*Y^2+0.937298*Y^3)
  95. 950  IF Z>=0 THEN 970
  96. 960  T=1-T
  97. 970  PRINT "PROBABILITY OF COMPLETION WITH DURATION OF";
  98. 980  PRINT D;"IS";T
  99. 990  PRINT
  100. 1000  GOTO 840
  101. 1010  END
  102.